#pragma once

#include <QtCore/QtCore>
#include <engine.core/qt_stl_integration.hpp>

#define NO_MINMAX
#define NOMINMAX

#include <boost/foreach.hpp>
#include <boost/bind.hpp>
#include <boost/shared_array.hpp>
#include <boost/ptr_container/ptr_vector.hpp>
#include <boost/unordered_set.hpp>
#include <boost/unordered_map.hpp>
#include <boost/numeric/conversion/cast.hpp>
#include <boost/function.hpp>
#include <boostext/exception.hpp>
#include <boost/shared_ptr.hpp>
#include <boostext/iostreams.hpp>
#include <boostext/format.hpp>
#include <boostext/util/messages.hpp>
#include <boostext/util/make_shared.hpp>
#undef foreach
#define foreach BOOST_FOREACH

using boostext::exception;
using boostext::critical_exception;
using boostext::programming_error;
using boostext::invalid_value_exception;
using boostext::format;
using namespace boostext::iostreams;




// DirectX
#include <D3DX9Math.h>
#include <D3D11.h>
#include <D3DX11.h>
#include <D3DCompiler.h>
#include <D3D11Shader.h>

#undef min
#undef max
#define MLD_MODULE "engine.video"
